package com.gitee.l0km.aocache;

/**
 * 一个可以抛出异常的泛型函数接口，类似于{@link java.util.function.Function}但允许抛出异常。
 *
 * @param <T> 函数输入类型
 * @param <R> 函数返回类型
 * @param <E> 函数可能抛出的异常类型
 */
interface ThrowingFunction<T, R, E extends Throwable> {
    /**
     * 对给定参数应用此函数。
     *
     * @param t 函数参数
     * @return 函数结果
     * @throws E 如果函数执行时发生异常
     */
    R apply(T t) throws E;
}